Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

кеширование больших объемов или include файла (simsim)
Author Message
simsim
Заглянувший



Joined: 04 Aug 2007
Posts: 10
Карма: 0
   поощрить/наказать


PostPosted: Wed Sep 26, 2007 11:33 pm (написано за 6 минут 48 секунд)
   Post subject: кеширование больших объемов или include файла
Reply with quote

Столкнулся с интересной темой
может профи будут смеяться


делаем форум,
значится у объекта тема есть владелец
в базе данных грубо говоря

id | themename | vladaelec_id
1 проверка 3

в таблице пользователей сайта
id | name |
3 Вася

т.о 2е таблицы связаны через владельца
все просто


допустим делаем вывод 50 тем последних на странице

выводим табличку название темы и автор

например проверка / Вася
     проверка 2 / Петя

как нам получить имя владельца темы?

делать вложенный запрос имени? при выводе каждой строчки? почему-то мне кажется это не очень оптимально

получается чтобы сгенерить страничку из 50 тем нужно использовать 51 запрос к базе...
не загрузит ли это сервер если 100 человек одновременно заползают по форуму?


как можно оптимизировать получение таких вот связанных данных?
Back to top
View user's profile Send private message
jonjonson
Участник форума
Banned


Joined: 16 Sep 2004
Posts: 88
Карма: 1
   поощрить/наказать


PostPosted: Thu Sep 27, 2007 1:30 am (спустя 1 час 56 минут; написано за 4 минуты 3 секунды)
   Post subject:
Reply with quote

Так?
Code (SQL): скопировать код в буфер обмена
SELECT themes.id AS theme_id,
    themes.themename AS theme_name,
    users.name AS user_name
FROM themes
LEFT JOIN users ON vladaelec_id = users.id
ORDER BY themes.id DESC
LIMIT 0, 50
Back to top
View user's profile Send private message
simsim
Заглянувший



Joined: 04 Aug 2007
Posts: 10
Карма: 0
   поощрить/наказать


PostPosted: Thu Sep 27, 2007 10:41 am (спустя 9 часов 11 минут; написано за 3 минуты 56 секунд)
   Post subject:
Reply with quote

ну в принципе клевое решение

спасибки

а как поступить если допустим

в каком-то поле хранится информация через #

допустим 2#4#5#65

делаем сначала explode
потом полученный массив циферок надо запросить из базы

допустим это список проголосовавших за данный вариант вопроса


где id это все тот же id users

делать 1000 запросов? если проголосовавших 1000?


или сделать select where id in(2,4,5)
Back to top
View user's profile Send private message
jonjonson
Участник форума
Banned


Joined: 16 Sep 2004
Posts: 88
Карма: 1
   поощрить/наказать


PostPosted: Thu Sep 27, 2007 10:50 am (спустя 9 минут; написано за 2 минуты 7 секунд)
   Post subject:
Reply with quote

Если информация хранится так 2#4#5#65, то что-то не так в "датском королевстве". В таком случае делается рефакторинг БД к правильному простому виду. Ну и оставшаяся часть вопроса мне не понятна, так как я не знаком с устройством структуры хранения данных в БД. :)
Back to top
View user's profile Send private message
simsim
Заглянувший



Joined: 04 Aug 2007
Posts: 10
Карма: 0
   поощрить/наказать


PostPosted: Thu Sep 27, 2007 1:37 pm (спустя 2 часа 46 минут; написано за 1 минуту 17 секунд)
   Post subject:
Reply with quote

ну а как еще хранить информацию о проголосовавших допустим?

или какую-то информацию которую не хочется хранить в базе, и доставать лишним запросом

так один запрос и получили нужные данные
Back to top
View user's profile Send private message
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Thu Sep 27, 2007 8:42 pm (спустя 7 часов 5 минут; написано за 2 минуты 18 секунд)
   Post subject:
Reply with quote

simsim
По-другому тоже будет 1 запрос. Только он вернет не 1 строку, а, скажем, 5. "Оптимизации" вроде Вашей возникают от слабого знания теории.
Читайте про нормальные формы, в общем.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML